@echo off
REM Frida Hook 数美SDK 快速启动脚本
REM Windows批处理文件

echo ================================================================================
echo Frida Hook 数美SDK - 快速启动
echo ================================================================================
echo.

REM 检查Frida是否安装
where frida >nul 2>nul
if %ERRORLEVEL% NEQ 0 (
    echo [错误] 未找到Frida！
    echo 请先安装: pip install frida-tools
    pause
    exit /b 1
)

echo [1/5] 检查Frida版本...
frida --version

echo.
echo [2/5] 检查设备连接...
adb devices

echo.
echo [3/5] 检查frida-server状态...
adb shell "ps | grep frida-server"

echo.
echo ================================================================================
echo 请选择操作:
echo ================================================================================
echo.
echo [1] 测试Frida环境 (推荐首次运行)
echo [2] Hook数美SDK - 完整流程追踪
echo [3] Hook数美SDK - 详细版本
echo [4] 启动frida-server
echo [5] 停止frida-server
echo [0] 退出
echo.

set /p choice="请输入选项 (0-5): "

if "%choice%"=="0" goto :end
if "%choice%"=="1" goto :test
if "%choice%"=="2" goto :hook_complete
if "%choice%"=="3" goto :hook_detailed
if "%choice%"=="4" goto :start_server
if "%choice%"=="5" goto :stop_server

echo 无效选项！
goto :end

:test
echo.
echo ================================================================================
echo 运行环境测试
echo ================================================================================
echo.
set /p package="请输入应用包名 (例如: com.example.app): "
if "%package%"=="" (
    echo 包名不能为空！
    goto :end
)
echo.
echo 正在运行测试脚本...
echo 命令: frida -U "%package%" -l test_frida.js
echo.
frida -U "%package%" -l test_frida.js
goto :end

:hook_complete
echo.
echo ================================================================================
echo Hook数美SDK - 完整流程追踪
echo ================================================================================
echo.
set /p package="请输入应用包名 (例如: com.example.app): "
if "%package%"=="" (
    echo 包名不能为空！
    goto :end
)
echo.
echo 选择启动方式:
echo [1] 重新启动应用 (推荐)
echo [2] 附加到已运行的应用
echo.
set /p mode="请选择 (1/2): "

if "%mode%"=="1" (
    echo.
    echo 正在启动应用并Hook...
    echo 命令: frida -U -f "%package%" -l hook_complete_flow.js --no-pause
    echo.
    echo 提示: 应用启动后，请手动触发数美SDK调用！
    echo.
    frida -U -f "%package%" -l hook_complete_flow.js --no-pause
) else (
    echo.
    echo 正在附加到应用...
    echo 命令: frida -U "%package%" -l hook_complete_flow.js
    echo.
    frida -U "%package%" -l hook_complete_flow.js
)
goto :end

:hook_detailed
echo.
echo ================================================================================
echo Hook数美SDK - 详细版本
echo ================================================================================
echo.
set /p package="请输入应用包名 (例如: com.example.app): "
if "%package%"=="" (
    echo 包名不能为空！
    goto :end
)
echo.
echo 选择启动方式:
echo [1] 重新启动应用
echo [2] 附加到已运行的应用
echo.
set /p mode="请选择 (1/2): "

if "%mode%"=="1" (
    echo.
    echo 正在启动应用并Hook...
    echo 结果将保存到设备的 /sdcard/ 目录
    echo.
    frida -U -f "%package%" -l hook_shumei.js --no-pause
) else (
    echo.
    echo 正在附加到应用...
    echo.
    frida -U "%package%" -l hook_shumei.js
)
goto :end

:start_server
echo.
echo ================================================================================
echo 启动frida-server
echo ================================================================================
echo.
echo 正在启动frida-server...
adb shell "su -c '/data/local/tmp/frida-server &'"
timeout /t 2 >nul
echo.
echo 检查状态...
adb shell "ps | grep frida-server"
echo.
echo 完成！
goto :end

:stop_server
echo.
echo ================================================================================
echo 停止frida-server
echo ================================================================================
echo.
echo 正在停止frida-server...
adb shell "su -c 'killall frida-server'"
echo 完成！
goto :end

:end
echo.
echo ================================================================================
pause


